﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;

namespace QuanLyCongDoanVien.UserControls
{
    public partial class ucThongKeCDV : UserControl
    {
        public ucThongKeCDV()
        {
            InitializeComponent();
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            chkHeSoLuong.Checked = false;
            chkHoTen.Checked = false;
            chkNamSinh.Checked = false;
            chkTinhTrang.Checked = false;
            chkToCongDoan.Checked = false;

            btnDongY.Enabled = false;
            dtgDanhSachKQ.Enabled = false;

            dtgDanhSachKQ.DataSource = null;
        }

        private void ucThongKeCDV_Load(object sender, EventArgs e)
        {
            txtHeSoLuong.Enabled = false;
            txtDenNam.Enabled = false;
            txtHoTen.Enabled = false;
            txtTuNam.Enabled = false;
            cboTinhTrang.Enabled = false;
            cboToCongDoan.Enabled = false;

            cboToCongDoan.DataSource = ToCongDoanBUS.LayDanhSach();
            cboToCongDoan.DisplayMember = "TenToCongDoan";
            cboToCongDoan.SelectedIndex = -1;

            btnDongY.Enabled = false;
            dtgDanhSachKQ.Enabled = false;
        }

        private void chkToCongDoan_CheckedChanged(object sender, EventArgs e)
        {
            if (chkToCongDoan.Checked == true)
            {
                cboToCongDoan.Enabled = true;
            }
            else
            {
                cboToCongDoan.Enabled = false;
                cboToCongDoan.SelectedIndex = -1;
            }
        }

        private void chkHoTen_CheckedChanged(object sender, EventArgs e)
        {
            if (chkHoTen.Checked == true)
            {
                txtHoTen.Enabled = true;
            }
            else
            {
                txtHoTen.Enabled = false;
                txtHoTen.Text = "";
            }
        }

        private void chkHeSoLuong_CheckedChanged(object sender, EventArgs e)
        {
            if (chkHeSoLuong.Checked == true)
            {
                txtHeSoLuong.Enabled = true;
            }
            else
            {
                txtHeSoLuong.Enabled = false;
                txtHeSoLuong.Text = "";
            }
        }

        private void chkTinhTrang_CheckedChanged(object sender, EventArgs e)
        {
            if (chkTinhTrang.Checked == true)
            {
                cboTinhTrang.Enabled = true;
            }
            else
            {
                cboTinhTrang.Enabled = false;
                cboTinhTrang.SelectedIndex = -1;
            }
        }

        private void chkNamSinh_CheckedChanged(object sender, EventArgs e)
        {
            if (chkNamSinh.Checked == true)
            {
                txtTuNam.Enabled = true;
            }
            else
            {
                txtTuNam.Enabled = false;
                txtTuNam.Text = "";
            }
        }

        private void txtTuNam_TextChanged(object sender, EventArgs e)
        {
            if (txtTuNam.Text.Trim() != "")
            {
                txtDenNam.Enabled = true;
            }
            else
            {
                txtDenNam.Enabled = false;
                txtDenNam.Text = "";
            }
        }

        private void cboToCongDoan_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cboToCongDoan.SelectedIndex > -1 || cboTinhTrang.SelectedIndex > -1
                || txtDenNam.Text.Trim() != "" || txtHeSoLuong.Text.Trim() != "" || txtHoTen.Text.Trim() != "")
            {
                btnDongY.Enabled = true;
            }
            else
            {
                btnDongY.Enabled = false;
            }
        }

        private void txtHoTen_TextChanged(object sender, EventArgs e)
        {
            if (cboToCongDoan.SelectedIndex > -1 || cboTinhTrang.SelectedIndex > -1
                || txtDenNam.Text.Trim() != "" || txtHeSoLuong.Text.Trim() != "" || txtHoTen.Text.Trim() != "")
            {
                btnDongY.Enabled = true;
            }
            else
            {
                btnDongY.Enabled = false;
            }
        }

        private void txtHeSoLuong_TextChanged(object sender, EventArgs e)
        {
            if (cboToCongDoan.SelectedIndex > -1 || cboTinhTrang.SelectedIndex > -1
                || txtDenNam.Text.Trim() != "" || txtHeSoLuong.Text.Trim() != "" || txtHoTen.Text.Trim() != "")
            {
                btnDongY.Enabled = true;
            }
            else
            {
                btnDongY.Enabled = false;
            }
        }

        private void cboTinhTrang_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cboToCongDoan.SelectedIndex > -1 || cboTinhTrang.SelectedIndex > -1
                || txtDenNam.Text.Trim() != "" || txtHeSoLuong.Text.Trim() != "" || txtHoTen.Text.Trim() != "")
            {
                btnDongY.Enabled = true;
            }
            else
            {
                btnDongY.Enabled = false;
            }
        }

        private void txtDenNam_TextChanged(object sender, EventArgs e)
        {
            if (cboToCongDoan.SelectedIndex > -1 || cboTinhTrang.SelectedIndex > -1
                || txtDenNam.Text.Trim() != "" || txtHeSoLuong.Text.Trim() != "" || txtHoTen.Text.Trim() != "")
            {
                btnDongY.Enabled = true;
            }
            else
            {
                btnDongY.Enabled = false;
            }
        }

        private string kiemTraHopLe()
        {
            string chuoiloi = "";
            if (chkHoTen.Checked == true && txtHoTen.Text.Trim() == "")
            {
                chuoiloi += "phải nhập vào họ tên công đoàn viên\n";
            }

            if (chkTinhTrang.Checked == true && cboTinhTrang.SelectedIndex == -1)
            {
                chuoiloi += "phải chọn tình trạng công tác của công đoàn viên\n";
            }

            if (chkToCongDoan.Checked == true && cboToCongDoan.SelectedIndex == -1)
            {
                chuoiloi += "phải chọn tổ công đoàn\n";
            }

            int nam;
            if (chkNamSinh.Checked == true && txtTuNam.Text.Trim() == "")
            {
                chuoiloi += "phải nhập năm sinh\n";
            }
            
            if ((txtTuNam.Text.Trim() != "" && Int32.TryParse(txtTuNam.Text.Trim(), out nam) == false)
                || (txtDenNam.Text.Trim() != "" && Int32.TryParse(txtDenNam.Text.Trim(), out nam) == false))
            {
                chuoiloi += "Năm sinh phải là số nguyên\n";
            }

            double hesoluong = 0.0;
            if (chkHeSoLuong.Checked == true && txtHeSoLuong.Text.Trim() == "")
            {
                chuoiloi += "phải nhập vào hệ số lương\n";
            }

            if(txtHeSoLuong.Text.Trim() != "" && Double.TryParse(txtHeSoLuong.Text.Trim(), out hesoluong) == false)
            {
                chuoiloi += "Hệ số lương phải là số thực\n";
            }
            return chuoiloi;
        }

        private void btnDongY_Click(object sender, EventArgs e)
        {
            string kt = kiemTraHopLe();
            if (kt != "")
            {
                MessageBox.Show(kt);
                return;
            }

            ToCongDoanDTO tocdDto = new ToCongDoanDTO();
            if (cboToCongDoan.SelectedIndex > -1)
            {
                tocdDto = (ToCongDoanDTO)cboToCongDoan.SelectedItem;
            }

            string tinhtrang = "";
            if (cboTinhTrang.SelectedIndex > -1)
            {
                tinhtrang = cboTinhTrang.SelectedItem.ToString();
            }

            string hoten = "";
            if (txtHoTen.Text.Trim() != "")
                hoten = txtHoTen.Text.Trim();

            string tuNam = "";
            if (txtTuNam.Text.Trim() != "")
            {
                tuNam = txtTuNam.Text.Trim();
            }

            string denNam = "";
            if (txtDenNam.Text.Trim() != "")
            {
                denNam = txtDenNam.Text.Trim();
            }

            double hesoluong = 0.0;
            if (txtHeSoLuong.Text.Trim() != "")
            {
                hesoluong = Double.Parse(txtHeSoLuong.Text.Trim());
            }


            try
            {
                dtgDanhSachKQ.Enabled = true;
                dtgDanhSachKQ.DataSource = CongDoanVienBUS.ThongKe(tinhtrang, hesoluong, tuNam, denNam, hoten, tocdDto);
                dtgDanhSachKQ.Columns["tocongdoanid"].Visible = false;
                dtgDanhSachKQ.Columns["tocongdoan"].Visible = false;
                dtgDanhSachKQ.Columns["tongiao"].Visible = false;
                dtgDanhSachKQ.Columns["tongiaoid"].Visible = false;
                dtgDanhSachKQ.Columns["dantoc"].Visible = false;
                dtgDanhSachKQ.Columns["dantocid"].Visible = false;

                int dem = dtgDanhSachKQ.Rows.Count;
                lblSoLuong.Text = "Số lượng công đoàn viên : " + dem.ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}
